Download this file

1743 lines (1743 with data), 133.4 kB

{
  "nbformat": 4,
  "nbformat_minor": 0,
  "metadata": {
    "colab": {
      "provenance": [],
      "machine_shape": "hm"
    },
    "kernelspec": {
      "name": "python3",
      "display_name": "Python 3"
    }
  },
  "cells": [
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "8XnVMPBXmtRa"
      },
      "source": [
        "# TensorNetworks in Neural Networks.\n",
        "\n",
        "Here, we have a small toy example of how to use a TN inside of a fully connected neural network.\n",
        "\n",
        "First off, let's install tensornetwork"
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "7HGRsYNAFxME"
      },
      "source": [
        "# !pip install tensornetwork\n",
        "\n",
        "import numpy as np\n",
        "import matplotlib.pyplot as plt\n",
        "import tensorflow as tf\n",
        "# Import tensornetwork\n",
        "import tensornetwork as tn\n",
        "from keras.optimizers import Adam\n",
        "import random\n",
        "import time\n",
        "# Set the backend to tesorflow\n",
        "# (default is numpy)\n",
        "tn.set_default_backend(\"tensorflow\")\n",
        "np.random.seed(42)\n",
        "random.seed(42)\n",
        "tf.random.set_seed(42)"
      ],
      "execution_count": 39,
      "outputs": []
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "g1OMCo5XmrYu"
      },
      "source": [
        "# TensorNetwork layer definition\n",
        "\n",
        "Here, we define the TensorNetwork layer we wish to use to replace the fully connected layer. Here, we simply use a 2 node Matrix Product Operator network to replace the normal dense weight matrix.\n",
        "\n",
        "We TensorNetwork's NCon API to keep the code short."
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "wvSMKtPufnLp"
      },
      "source": [
        "class TNLayer(tf.keras.layers.Layer):\n",
        "\n",
        "  def __init__(self):\n",
        "    super(TNLayer, self).__init__()\n",
        "    # Create the variables for the layer.\n",
        "    self.a_var = tf.Variable(tf.random.normal(shape=(32, 32, 2),\n",
        "                                              stddev=1.0/32.0),\n",
        "                             name=\"a\", trainable=True)\n",
        "    self.b_var = tf.Variable(tf.random.normal(shape=(32, 32, 2),\n",
        "                                              stddev=1.0/32.0),\n",
        "                             name=\"b\", trainable=True)\n",
        "    self.bias = tf.Variable(tf.zeros(shape=(32, 32)),\n",
        "                            name=\"bias\", trainable=True)\n",
        "\n",
        "  def call(self, inputs):\n",
        "    # Define the contraction.\n",
        "    # We break it out so we can parallelize a batch using\n",
        "    # tf.vectorized_map (see below).\n",
        "    def f(input_vec, a_var, b_var, bias_var):\n",
        "      # Reshape to a matrix instead of a vector.\n",
        "      input_vec = tf.reshape(input_vec, (32, 32))\n",
        "\n",
        "      # Now we create the network.\n",
        "      a = tn.Node(a_var)\n",
        "      b = tn.Node(b_var)\n",
        "      x_node = tn.Node(input_vec)\n",
        "      a[1] ^ x_node[0]\n",
        "      b[1] ^ x_node[1]\n",
        "      a[2] ^ b[2]\n",
        "\n",
        "      # The TN should now look like this\n",
        "      #   |     |\n",
        "      #   a --- b\n",
        "      #    \\   /\n",
        "      #      x\n",
        "\n",
        "      # Now we begin the contraction.\n",
        "      c = a @ x_node\n",
        "      result = (c @ b).tensor\n",
        "\n",
        "      # To make the code shorter, we also could've used Ncon.\n",
        "      # The above few lines of code is the same as this:\n",
        "      # result = tn.ncon([x, a_var, b_var], [[1, 2], [-1, 1, 3], [-2, 2, 3]])\n",
        "\n",
        "      # Finally, add bias.\n",
        "      return result + bias_var\n",
        "\n",
        "    # To deal with a batch of items, we can use the tf.vectorized_map\n",
        "    # function.\n",
        "    # https://www.tensorflow.org/api_docs/python/tf/vectorized_map\n",
        "    result = tf.vectorized_map(\n",
        "        lambda vec: f(vec, self.a_var, self.b_var, self.bias), inputs)\n",
        "    return tf.nn.relu(tf.reshape(result, (-1, 1024)))"
      ],
      "execution_count": 40,
      "outputs": []
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "V-CVqIhPnhY_"
      },
      "source": [
        "# Smaller model\n",
        "These two models are effectively the same, but notice how the TN layer has nearly 10x fewer parameters."
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "XPBvnB95jg4b",
        "outputId": "46d33050-c4da-41f4-eb09-47f94c9a95a9",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 0
        }
      },
      "source": [
        "Dense = tf.keras.layers.Dense\n",
        "fc_model = tf.keras.Sequential(\n",
        "    [\n",
        "     tf.keras.Input(shape=(2,)),\n",
        "     Dense(1024, activation=tf.nn.relu),\n",
        "     Dense(1024, activation=tf.nn.relu),\n",
        "     Dense(1, activation=None)])\n",
        "fc_model.summary()"
      ],
      "execution_count": 41,
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "Model: \"sequential_6\"\n",
            "_________________________________________________________________\n",
            " Layer (type)                Output Shape              Param #   \n",
            "=================================================================\n",
            " dense_15 (Dense)            (None, 1024)              3072      \n",
            "                                                                 \n",
            " dense_16 (Dense)            (None, 1024)              1049600   \n",
            "                                                                 \n",
            " dense_17 (Dense)            (None, 1)                 1025      \n",
            "                                                                 \n",
            "=================================================================\n",
            "Total params: 1053697 (4.02 MB)\n",
            "Trainable params: 1053697 (4.02 MB)\n",
            "Non-trainable params: 0 (0.00 Byte)\n",
            "_________________________________________________________________\n"
          ]
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "bbKsmK8wIFTp",
        "outputId": "401df02f-3de6-48e2-adc4-9e321a4f44aa",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 0
        }
      },
      "source": [
        "tn_model = tf.keras.Sequential(\n",
        "    [\n",
        "     tf.keras.Input(shape=(2,)),\n",
        "     Dense(1024, activation=tf.nn.relu),\n",
        "     # Here, we replace the dense layer with our MPS.\n",
        "     TNLayer(),\n",
        "     TNLayer(),\n",
        "     TNLayer(),\n",
        "     Dense(1, activation=None)])\n",
        "tn_model.summary()"
      ],
      "execution_count": 42,
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "Model: \"sequential_7\"\n",
            "_________________________________________________________________\n",
            " Layer (type)                Output Shape              Param #   \n",
            "=================================================================\n",
            " dense_18 (Dense)            (None, 1024)              3072      \n",
            "                                                                 \n",
            " tn_layer_9 (TNLayer)        (None, 1024)              5120      \n",
            "                                                                 \n",
            " tn_layer_10 (TNLayer)       (None, 1024)              5120      \n",
            "                                                                 \n",
            " tn_layer_11 (TNLayer)       (None, 1024)              5120      \n",
            "                                                                 \n",
            " dense_19 (Dense)            (None, 1)                 1025      \n",
            "                                                                 \n",
            "=================================================================\n",
            "Total params: 19457 (76.00 KB)\n",
            "Trainable params: 19457 (76.00 KB)\n",
            "Non-trainable params: 0 (0.00 Byte)\n",
            "_________________________________________________________________\n"
          ]
        }
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "GWwoYp0WnsLA"
      },
      "source": [
        "# Training a model\n",
        "\n",
        "You can train the TN model just as you would a normal neural network model! Here, we give an example of how to do it in Keras."
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "qDFzOC7sDBJ-"
      },
      "source": [
        "X = np.concatenate([np.random.randn(20, 2) + np.array([3, 3]),\n",
        "                    np.random.randn(20, 2) + np.array([-3, -3]),\n",
        "                    np.random.randn(20, 2) + np.array([-3, 3]),\n",
        "                    np.random.randn(20, 2) + np.array([3, -3])])\n",
        "\n",
        "Y = np.concatenate([np.ones((40)), -np.ones((40))])"
      ],
      "execution_count": 43,
      "outputs": []
    },
    {
      "cell_type": "code",
      "source": [
        "seconds = time.time()\n",
        "print(\"Time in seconds since beginning of run:\", seconds)\n",
        "local_time = time.ctime(seconds)\n",
        "print(local_time)"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 0
        },
        "id": "19TWP-1eKURB",
        "outputId": "14c7c596-068d-4190-aba9-c1ef6266e799"
      },
      "execution_count": 44,
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "Time in seconds since beginning of run: 1710115748.7073364\n",
            "Mon Mar 11 00:09:08 2024\n"
          ]
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "crc0q1vbIyTj",
        "outputId": "edc0cfd0-2c8b-49d1-c41f-c6492fe847ba",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 0
        }
      },
      "source": [
        "optimizer = Adam(learning_rate=0.01)\n",
        "tn_model.compile(optimizer=optimizer, loss=\"mean_squared_error\")\n",
        "tn_model.fit(X, Y, epochs=300, verbose=2)"
      ],
      "execution_count": 45,
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "Epoch 1/300\n",
            "3/3 - 2s - loss: 1.0099 - 2s/epoch - 679ms/step\n",
            "Epoch 2/300\n",
            "3/3 - 0s - loss: 1.0618 - 19ms/epoch - 6ms/step\n",
            "Epoch 3/300\n",
            "3/3 - 0s - loss: 1.0297 - 20ms/epoch - 7ms/step\n",
            "Epoch 4/300\n",
            "3/3 - 0s - loss: 0.7851 - 19ms/epoch - 6ms/step\n",
            "Epoch 5/300\n",
            "3/3 - 0s - loss: 0.2142 - 18ms/epoch - 6ms/step\n",
            "Epoch 6/300\n",
            "3/3 - 0s - loss: 0.1876 - 19ms/epoch - 6ms/step\n",
            "Epoch 7/300\n",
            "3/3 - 0s - loss: 0.1060 - 18ms/epoch - 6ms/step\n",
            "Epoch 8/300\n",
            "3/3 - 0s - loss: 0.0595 - 17ms/epoch - 6ms/step\n",
            "Epoch 9/300\n",
            "3/3 - 0s - loss: 0.0282 - 19ms/epoch - 6ms/step\n",
            "Epoch 10/300\n",
            "3/3 - 0s - loss: 0.0351 - 18ms/epoch - 6ms/step\n",
            "Epoch 11/300\n",
            "3/3 - 0s - loss: 0.0214 - 21ms/epoch - 7ms/step\n",
            "Epoch 12/300\n",
            "3/3 - 0s - loss: 0.0125 - 18ms/epoch - 6ms/step\n",
            "Epoch 13/300\n",
            "3/3 - 0s - loss: 0.0165 - 18ms/epoch - 6ms/step\n",
            "Epoch 14/300\n",
            "3/3 - 0s - loss: 0.0062 - 20ms/epoch - 7ms/step\n",
            "Epoch 15/300\n",
            "3/3 - 0s - loss: 0.0126 - 19ms/epoch - 6ms/step\n",
            "Epoch 16/300\n",
            "3/3 - 0s - loss: 0.0048 - 17ms/epoch - 6ms/step\n",
            "Epoch 17/300\n",
            "3/3 - 0s - loss: 0.0067 - 19ms/epoch - 6ms/step\n",
            "Epoch 18/300\n",
            "3/3 - 0s - loss: 0.0032 - 19ms/epoch - 6ms/step\n",
            "Epoch 19/300\n",
            "3/3 - 0s - loss: 0.0022 - 19ms/epoch - 6ms/step\n",
            "Epoch 20/300\n",
            "3/3 - 0s - loss: 0.0021 - 18ms/epoch - 6ms/step\n",
            "Epoch 21/300\n",
            "3/3 - 0s - loss: 8.1583e-04 - 19ms/epoch - 6ms/step\n",
            "Epoch 22/300\n",
            "3/3 - 0s - loss: 0.0013 - 22ms/epoch - 7ms/step\n",
            "Epoch 23/300\n",
            "3/3 - 0s - loss: 5.1920e-04 - 19ms/epoch - 6ms/step\n",
            "Epoch 24/300\n",
            "3/3 - 0s - loss: 6.2671e-04 - 18ms/epoch - 6ms/step\n",
            "Epoch 25/300\n",
            "3/3 - 0s - loss: 3.2838e-04 - 19ms/epoch - 6ms/step\n",
            "Epoch 26/300\n",
            "3/3 - 0s - loss: 3.4543e-04 - 19ms/epoch - 6ms/step\n",
            "Epoch 27/300\n",
            "3/3 - 0s - loss: 2.0037e-04 - 21ms/epoch - 7ms/step\n",
            "Epoch 28/300\n",
            "3/3 - 0s - loss: 1.1026e-04 - 20ms/epoch - 7ms/step\n",
            "Epoch 29/300\n",
            "3/3 - 0s - loss: 1.1426e-04 - 20ms/epoch - 7ms/step\n",
            "Epoch 30/300\n",
            "3/3 - 0s - loss: 9.6223e-05 - 19ms/epoch - 6ms/step\n",
            "Epoch 31/300\n",
            "3/3 - 0s - loss: 6.9174e-05 - 19ms/epoch - 6ms/step\n",
            "Epoch 32/300\n",
            "3/3 - 0s - loss: 4.6606e-05 - 19ms/epoch - 6ms/step\n",
            "Epoch 33/300\n",
            "3/3 - 0s - loss: 3.0641e-05 - 19ms/epoch - 6ms/step\n",
            "Epoch 34/300\n",
            "3/3 - 0s - loss: 1.4835e-05 - 19ms/epoch - 6ms/step\n",
            "Epoch 35/300\n",
            "3/3 - 0s - loss: 2.3514e-05 - 18ms/epoch - 6ms/step\n",
            "Epoch 36/300\n",
            "3/3 - 0s - loss: 2.3917e-05 - 21ms/epoch - 7ms/step\n",
            "Epoch 37/300\n",
            "3/3 - 0s - loss: 1.9590e-05 - 19ms/epoch - 6ms/step\n",
            "Epoch 38/300\n",
            "3/3 - 0s - loss: 1.7313e-05 - 18ms/epoch - 6ms/step\n",
            "Epoch 39/300\n",
            "3/3 - 0s - loss: 1.4450e-05 - 20ms/epoch - 7ms/step\n",
            "Epoch 40/300\n",
            "3/3 - 0s - loss: 1.1129e-05 - 19ms/epoch - 6ms/step\n",
            "Epoch 41/300\n",
            "3/3 - 0s - loss: 5.4487e-06 - 20ms/epoch - 7ms/step\n",
            "Epoch 42/300\n",
            "3/3 - 0s - loss: 6.6548e-06 - 19ms/epoch - 6ms/step\n",
            "Epoch 43/300\n",
            "3/3 - 0s - loss: 5.9741e-06 - 19ms/epoch - 6ms/step\n",
            "Epoch 44/300\n",
            "3/3 - 0s - loss: 4.2331e-06 - 18ms/epoch - 6ms/step\n",
            "Epoch 45/300\n",
            "3/3 - 0s - loss: 3.4926e-06 - 20ms/epoch - 7ms/step\n",
            "Epoch 46/300\n",
            "3/3 - 0s - loss: 5.8340e-06 - 19ms/epoch - 6ms/step\n",
            "Epoch 47/300\n",
            "3/3 - 0s - loss: 5.3867e-06 - 19ms/epoch - 6ms/step\n",
            "Epoch 48/300\n",
            "3/3 - 0s - loss: 4.6646e-06 - 18ms/epoch - 6ms/step\n",
            "Epoch 49/300\n",
            "3/3 - 0s - loss: 3.7290e-06 - 19ms/epoch - 6ms/step\n",
            "Epoch 50/300\n",
            "3/3 - 0s - loss: 2.9686e-06 - 18ms/epoch - 6ms/step\n",
            "Epoch 51/300\n",
            "3/3 - 0s - loss: 2.3041e-06 - 19ms/epoch - 6ms/step\n",
            "Epoch 52/300\n",
            "3/3 - 0s - loss: 1.6578e-06 - 18ms/epoch - 6ms/step\n",
            "Epoch 53/300\n",
            "3/3 - 0s - loss: 1.6930e-06 - 18ms/epoch - 6ms/step\n",
            "Epoch 54/300\n",
            "3/3 - 0s - loss: 1.6962e-06 - 16ms/epoch - 5ms/step\n",
            "Epoch 55/300\n",
            "3/3 - 0s - loss: 1.4092e-06 - 19ms/epoch - 6ms/step\n",
            "Epoch 56/300\n",
            "3/3 - 0s - loss: 1.0717e-06 - 19ms/epoch - 6ms/step\n",
            "Epoch 57/300\n",
            "3/3 - 0s - loss: 9.2633e-07 - 21ms/epoch - 7ms/step\n",
            "Epoch 58/300\n",
            "3/3 - 0s - loss: 8.9829e-07 - 19ms/epoch - 6ms/step\n",
            "Epoch 59/300\n",
            "3/3 - 0s - loss: 1.2178e-06 - 20ms/epoch - 7ms/step\n",
            "Epoch 60/300\n",
            "3/3 - 0s - loss: 1.3702e-06 - 19ms/epoch - 6ms/step\n",
            "Epoch 61/300\n",
            "3/3 - 0s - loss: 1.2527e-06 - 18ms/epoch - 6ms/step\n",
            "Epoch 62/300\n",
            "3/3 - 0s - loss: 1.4560e-06 - 19ms/epoch - 6ms/step\n",
            "Epoch 63/300\n",
            "3/3 - 0s - loss: 1.3947e-06 - 18ms/epoch - 6ms/step\n",
            "Epoch 64/300\n",
            "3/3 - 0s - loss: 1.4651e-06 - 20ms/epoch - 7ms/step\n",
            "Epoch 65/300\n",
            "3/3 - 0s - loss: 1.3533e-06 - 19ms/epoch - 6ms/step\n",
            "Epoch 66/300\n",
            "3/3 - 0s - loss: 1.5545e-06 - 19ms/epoch - 6ms/step\n",
            "Epoch 67/300\n",
            "3/3 - 0s - loss: 1.3963e-06 - 20ms/epoch - 7ms/step\n",
            "Epoch 68/300\n",
            "3/3 - 0s - loss: 1.1181e-06 - 19ms/epoch - 6ms/step\n",
            "Epoch 69/300\n",
            "3/3 - 0s - loss: 1.0852e-06 - 20ms/epoch - 7ms/step\n",
            "Epoch 70/300\n",
            "3/3 - 0s - loss: 1.4360e-06 - 18ms/epoch - 6ms/step\n",
            "Epoch 71/300\n",
            "3/3 - 0s - loss: 1.7557e-06 - 19ms/epoch - 6ms/step\n",
            "Epoch 72/300\n",
            "3/3 - 0s - loss: 9.6350e-07 - 20ms/epoch - 7ms/step\n",
            "Epoch 73/300\n",
            "3/3 - 0s - loss: 7.4814e-07 - 19ms/epoch - 6ms/step\n",
            "Epoch 74/300\n",
            "3/3 - 0s - loss: 1.1966e-06 - 19ms/epoch - 6ms/step\n",
            "Epoch 75/300\n",
            "3/3 - 0s - loss: 4.8958e-07 - 18ms/epoch - 6ms/step\n",
            "Epoch 76/300\n",
            "3/3 - 0s - loss: 4.0164e-07 - 19ms/epoch - 6ms/step\n",
            "Epoch 77/300\n",
            "3/3 - 0s - loss: 3.4498e-07 - 18ms/epoch - 6ms/step\n",
            "Epoch 78/300\n",
            "3/3 - 0s - loss: 3.0993e-07 - 19ms/epoch - 6ms/step\n",
            "Epoch 79/300\n",
            "3/3 - 0s - loss: 3.2568e-07 - 19ms/epoch - 6ms/step\n",
            "Epoch 80/300\n",
            "3/3 - 0s - loss: 4.1273e-07 - 20ms/epoch - 7ms/step\n",
            "Epoch 81/300\n",
            "3/3 - 0s - loss: 1.2075e-06 - 19ms/epoch - 6ms/step\n",
            "Epoch 82/300\n",
            "3/3 - 0s - loss: 6.6389e-07 - 21ms/epoch - 7ms/step\n",
            "Epoch 83/300\n",
            "3/3 - 0s - loss: 4.7868e-07 - 20ms/epoch - 7ms/step\n",
            "Epoch 84/300\n",
            "3/3 - 0s - loss: 3.9477e-07 - 19ms/epoch - 6ms/step\n",
            "Epoch 85/300\n",
            "3/3 - 0s - loss: 3.1278e-07 - 19ms/epoch - 6ms/step\n",
            "Epoch 86/300\n",
            "3/3 - 0s - loss: 2.2308e-07 - 18ms/epoch - 6ms/step\n",
            "Epoch 87/300\n",
            "3/3 - 0s - loss: 4.3961e-07 - 18ms/epoch - 6ms/step\n",
            "Epoch 88/300\n",
            "3/3 - 0s - loss: 3.8550e-07 - 19ms/epoch - 6ms/step\n",
            "Epoch 89/300\n",
            "3/3 - 0s - loss: 3.2221e-07 - 21ms/epoch - 7ms/step\n",
            "Epoch 90/300\n",
            "3/3 - 0s - loss: 2.3687e-07 - 20ms/epoch - 7ms/step\n",
            "Epoch 91/300\n",
            "3/3 - 0s - loss: 3.2211e-07 - 21ms/epoch - 7ms/step\n",
            "Epoch 92/300\n",
            "3/3 - 0s - loss: 2.8577e-07 - 20ms/epoch - 7ms/step\n",
            "Epoch 93/300\n",
            "3/3 - 0s - loss: 2.0981e-07 - 20ms/epoch - 7ms/step\n",
            "Epoch 94/300\n",
            "3/3 - 0s - loss: 2.0983e-07 - 20ms/epoch - 7ms/step\n",
            "Epoch 95/300\n",
            "3/3 - 0s - loss: 1.7235e-07 - 19ms/epoch - 6ms/step\n",
            "Epoch 96/300\n",
            "3/3 - 0s - loss: 2.3890e-07 - 19ms/epoch - 6ms/step\n",
            "Epoch 97/300\n",
            "3/3 - 0s - loss: 3.2022e-07 - 19ms/epoch - 6ms/step\n",
            "Epoch 98/300\n",
            "3/3 - 0s - loss: 1.6092e-07 - 20ms/epoch - 7ms/step\n",
            "Epoch 99/300\n",
            "3/3 - 0s - loss: 1.4895e-07 - 18ms/epoch - 6ms/step\n",
            "Epoch 100/300\n",
            "3/3 - 0s - loss: 2.9767e-07 - 19ms/epoch - 6ms/step\n",
            "Epoch 101/300\n",
            "3/3 - 0s - loss: 2.8478e-07 - 19ms/epoch - 6ms/step\n",
            "Epoch 102/300\n",
            "3/3 - 0s - loss: 8.0628e-07 - 20ms/epoch - 7ms/step\n",
            "Epoch 103/300\n",
            "3/3 - 0s - loss: 7.0486e-07 - 18ms/epoch - 6ms/step\n",
            "Epoch 104/300\n",
            "3/3 - 0s - loss: 1.4074e-06 - 20ms/epoch - 7ms/step\n",
            "Epoch 105/300\n",
            "3/3 - 0s - loss: 1.0667e-06 - 21ms/epoch - 7ms/step\n",
            "Epoch 106/300\n",
            "3/3 - 0s - loss: 1.5753e-06 - 20ms/epoch - 7ms/step\n",
            "Epoch 107/300\n",
            "3/3 - 0s - loss: 8.2320e-07 - 19ms/epoch - 6ms/step\n",
            "Epoch 108/300\n",
            "3/3 - 0s - loss: 1.0657e-06 - 20ms/epoch - 7ms/step\n",
            "Epoch 109/300\n",
            "3/3 - 0s - loss: 1.6711e-06 - 19ms/epoch - 6ms/step\n",
            "Epoch 110/300\n",
            "3/3 - 0s - loss: 5.9381e-07 - 18ms/epoch - 6ms/step\n",
            "Epoch 111/300\n",
            "3/3 - 0s - loss: 5.3983e-07 - 17ms/epoch - 6ms/step\n",
            "Epoch 112/300\n",
            "3/3 - 0s - loss: 8.9152e-07 - 20ms/epoch - 7ms/step\n",
            "Epoch 113/300\n",
            "3/3 - 0s - loss: 2.6863e-07 - 19ms/epoch - 6ms/step\n",
            "Epoch 114/300\n",
            "3/3 - 0s - loss: 2.2502e-07 - 19ms/epoch - 6ms/step\n",
            "Epoch 115/300\n",
            "3/3 - 0s - loss: 2.5947e-07 - 18ms/epoch - 6ms/step\n",
            "Epoch 116/300\n",
            "3/3 - 0s - loss: 2.0981e-07 - 19ms/epoch - 6ms/step\n",
            "Epoch 117/300\n",
            "3/3 - 0s - loss: 1.6410e-07 - 21ms/epoch - 7ms/step\n",
            "Epoch 118/300\n",
            "3/3 - 0s - loss: 1.5003e-07 - 19ms/epoch - 6ms/step\n",
            "Epoch 119/300\n",
            "3/3 - 0s - loss: 9.7911e-08 - 19ms/epoch - 6ms/step\n",
            "Epoch 120/300\n",
            "3/3 - 0s - loss: 1.2864e-07 - 20ms/epoch - 7ms/step\n",
            "Epoch 121/300\n",
            "3/3 - 0s - loss: 1.2344e-07 - 17ms/epoch - 6ms/step\n",
            "Epoch 122/300\n",
            "3/3 - 0s - loss: 1.4356e-07 - 18ms/epoch - 6ms/step\n",
            "Epoch 123/300\n",
            "3/3 - 0s - loss: 1.5398e-07 - 17ms/epoch - 6ms/step\n",
            "Epoch 124/300\n",
            "3/3 - 0s - loss: 1.0863e-07 - 19ms/epoch - 6ms/step\n",
            "Epoch 125/300\n",
            "3/3 - 0s - loss: 1.0994e-07 - 19ms/epoch - 6ms/step\n",
            "Epoch 126/300\n",
            "3/3 - 0s - loss: 1.2515e-07 - 19ms/epoch - 6ms/step\n",
            "Epoch 127/300\n",
            "3/3 - 0s - loss: 1.9302e-07 - 18ms/epoch - 6ms/step\n",
            "Epoch 128/300\n",
            "3/3 - 0s - loss: 1.4206e-07 - 20ms/epoch - 7ms/step\n",
            "Epoch 129/300\n",
            "3/3 - 0s - loss: 1.8913e-07 - 21ms/epoch - 7ms/step\n",
            "Epoch 130/300\n",
            "3/3 - 0s - loss: 3.2405e-07 - 20ms/epoch - 7ms/step\n",
            "Epoch 131/300\n",
            "3/3 - 0s - loss: 3.1600e-07 - 19ms/epoch - 6ms/step\n",
            "Epoch 132/300\n",
            "3/3 - 0s - loss: 1.8749e-07 - 20ms/epoch - 7ms/step\n",
            "Epoch 133/300\n",
            "3/3 - 0s - loss: 3.4497e-07 - 19ms/epoch - 6ms/step\n",
            "Epoch 134/300\n",
            "3/3 - 0s - loss: 3.4384e-07 - 18ms/epoch - 6ms/step\n",
            "Epoch 135/300\n",
            "3/3 - 0s - loss: 4.2809e-07 - 20ms/epoch - 7ms/step\n",
            "Epoch 136/300\n",
            "3/3 - 0s - loss: 3.0598e-07 - 18ms/epoch - 6ms/step\n",
            "Epoch 137/300\n",
            "3/3 - 0s - loss: 3.5589e-07 - 20ms/epoch - 7ms/step\n",
            "Epoch 138/300\n",
            "3/3 - 0s - loss: 1.1438e-07 - 20ms/epoch - 7ms/step\n",
            "Epoch 139/300\n",
            "3/3 - 0s - loss: 4.7778e-07 - 20ms/epoch - 7ms/step\n",
            "Epoch 140/300\n",
            "3/3 - 0s - loss: 6.8852e-07 - 18ms/epoch - 6ms/step\n",
            "Epoch 141/300\n",
            "3/3 - 0s - loss: 3.3303e-07 - 18ms/epoch - 6ms/step\n",
            "Epoch 142/300\n",
            "3/3 - 0s - loss: 2.6374e-07 - 19ms/epoch - 6ms/step\n",
            "Epoch 143/300\n",
            "3/3 - 0s - loss: 2.7359e-07 - 20ms/epoch - 7ms/step\n",
            "Epoch 144/300\n",
            "3/3 - 0s - loss: 1.8344e-07 - 18ms/epoch - 6ms/step\n",
            "Epoch 145/300\n",
            "3/3 - 0s - loss: 2.4369e-07 - 19ms/epoch - 6ms/step\n",
            "Epoch 146/300\n",
            "3/3 - 0s - loss: 5.5175e-07 - 18ms/epoch - 6ms/step\n",
            "Epoch 147/300\n",
            "3/3 - 0s - loss: 6.1442e-07 - 19ms/epoch - 6ms/step\n",
            "Epoch 148/300\n",
            "3/3 - 0s - loss: 6.9172e-07 - 18ms/epoch - 6ms/step\n",
            "Epoch 149/300\n",
            "3/3 - 0s - loss: 6.0074e-07 - 18ms/epoch - 6ms/step\n",
            "Epoch 150/300\n",
            "3/3 - 0s - loss: 7.1329e-07 - 18ms/epoch - 6ms/step\n",
            "Epoch 151/300\n",
            "3/3 - 0s - loss: 7.4037e-07 - 19ms/epoch - 6ms/step\n",
            "Epoch 152/300\n",
            "3/3 - 0s - loss: 5.4168e-07 - 19ms/epoch - 6ms/step\n",
            "Epoch 153/300\n",
            "3/3 - 0s - loss: 2.9634e-07 - 19ms/epoch - 6ms/step\n",
            "Epoch 154/300\n",
            "3/3 - 0s - loss: 4.7975e-07 - 22ms/epoch - 7ms/step\n",
            "Epoch 155/300\n",
            "3/3 - 0s - loss: 6.1212e-07 - 18ms/epoch - 6ms/step\n",
            "Epoch 156/300\n",
            "3/3 - 0s - loss: 3.9855e-07 - 18ms/epoch - 6ms/step\n",
            "Epoch 157/300\n",
            "3/3 - 0s - loss: 5.3743e-07 - 18ms/epoch - 6ms/step\n",
            "Epoch 158/300\n",
            "3/3 - 0s - loss: 9.6078e-07 - 19ms/epoch - 6ms/step\n",
            "Epoch 159/300\n",
            "3/3 - 0s - loss: 2.2770e-06 - 21ms/epoch - 7ms/step\n",
            "Epoch 160/300\n",
            "3/3 - 0s - loss: 3.7209e-06 - 18ms/epoch - 6ms/step\n",
            "Epoch 161/300\n",
            "3/3 - 0s - loss: 1.0465e-06 - 19ms/epoch - 6ms/step\n",
            "Epoch 162/300\n",
            "3/3 - 0s - loss: 1.0303e-06 - 19ms/epoch - 6ms/step\n",
            "Epoch 163/300\n",
            "3/3 - 0s - loss: 2.5250e-06 - 20ms/epoch - 7ms/step\n",
            "Epoch 164/300\n",
            "3/3 - 0s - loss: 3.3465e-07 - 19ms/epoch - 6ms/step\n",
            "Epoch 165/300\n",
            "3/3 - 0s - loss: 4.3663e-07 - 20ms/epoch - 7ms/step\n",
            "Epoch 166/300\n",
            "3/3 - 0s - loss: 2.8866e-07 - 20ms/epoch - 7ms/step\n",
            "Epoch 167/300\n",
            "3/3 - 0s - loss: 1.9994e-07 - 17ms/epoch - 6ms/step\n",
            "Epoch 168/300\n",
            "3/3 - 0s - loss: 3.1387e-07 - 20ms/epoch - 7ms/step\n",
            "Epoch 169/300\n",
            "3/3 - 0s - loss: 6.0118e-07 - 17ms/epoch - 6ms/step\n",
            "Epoch 170/300\n",
            "3/3 - 0s - loss: 3.3908e-07 - 18ms/epoch - 6ms/step\n",
            "Epoch 171/300\n",
            "3/3 - 0s - loss: 5.5591e-07 - 17ms/epoch - 6ms/step\n",
            "Epoch 172/300\n",
            "3/3 - 0s - loss: 4.1380e-07 - 18ms/epoch - 6ms/step\n",
            "Epoch 173/300\n",
            "3/3 - 0s - loss: 5.7421e-07 - 19ms/epoch - 6ms/step\n",
            "Epoch 174/300\n",
            "3/3 - 0s - loss: 1.1447e-06 - 18ms/epoch - 6ms/step\n",
            "Epoch 175/300\n",
            "3/3 - 0s - loss: 5.4256e-07 - 19ms/epoch - 6ms/step\n",
            "Epoch 176/300\n",
            "3/3 - 0s - loss: 3.8374e-07 - 19ms/epoch - 6ms/step\n",
            "Epoch 177/300\n",
            "3/3 - 0s - loss: 7.0270e-07 - 21ms/epoch - 7ms/step\n",
            "Epoch 178/300\n",
            "3/3 - 0s - loss: 3.9338e-06 - 18ms/epoch - 6ms/step\n",
            "Epoch 179/300\n",
            "3/3 - 0s - loss: 2.0787e-06 - 19ms/epoch - 6ms/step\n",
            "Epoch 180/300\n",
            "3/3 - 0s - loss: 1.4890e-06 - 19ms/epoch - 6ms/step\n",
            "Epoch 181/300\n",
            "3/3 - 0s - loss: 1.4510e-06 - 18ms/epoch - 6ms/step\n",
            "Epoch 182/300\n",
            "3/3 - 0s - loss: 9.4942e-07 - 18ms/epoch - 6ms/step\n",
            "Epoch 183/300\n",
            "3/3 - 0s - loss: 1.9691e-06 - 20ms/epoch - 7ms/step\n",
            "Epoch 184/300\n",
            "3/3 - 0s - loss: 1.6304e-06 - 19ms/epoch - 6ms/step\n",
            "Epoch 185/300\n",
            "3/3 - 0s - loss: 1.0826e-06 - 19ms/epoch - 6ms/step\n",
            "Epoch 186/300\n",
            "3/3 - 0s - loss: 8.5905e-07 - 18ms/epoch - 6ms/step\n",
            "Epoch 187/300\n",
            "3/3 - 0s - loss: 8.8533e-07 - 18ms/epoch - 6ms/step\n",
            "Epoch 188/300\n",
            "3/3 - 0s - loss: 1.7770e-06 - 18ms/epoch - 6ms/step\n",
            "Epoch 189/300\n",
            "3/3 - 0s - loss: 2.1259e-06 - 19ms/epoch - 6ms/step\n",
            "Epoch 190/300\n",
            "3/3 - 0s - loss: 2.1191e-06 - 18ms/epoch - 6ms/step\n",
            "Epoch 191/300\n",
            "3/3 - 0s - loss: 1.4324e-06 - 18ms/epoch - 6ms/step\n",
            "Epoch 192/300\n",
            "3/3 - 0s - loss: 1.0581e-06 - 19ms/epoch - 6ms/step\n",
            "Epoch 193/300\n",
            "3/3 - 0s - loss: 6.5345e-07 - 19ms/epoch - 6ms/step\n",
            "Epoch 194/300\n",
            "3/3 - 0s - loss: 3.0631e-06 - 20ms/epoch - 7ms/step\n",
            "Epoch 195/300\n",
            "3/3 - 0s - loss: 2.6519e-06 - 19ms/epoch - 6ms/step\n",
            "Epoch 196/300\n",
            "3/3 - 0s - loss: 1.0970e-05 - 21ms/epoch - 7ms/step\n",
            "Epoch 197/300\n",
            "3/3 - 0s - loss: 3.1575e-05 - 18ms/epoch - 6ms/step\n",
            "Epoch 198/300\n",
            "3/3 - 0s - loss: 9.9947e-05 - 18ms/epoch - 6ms/step\n",
            "Epoch 199/300\n",
            "3/3 - 0s - loss: 2.1278e-05 - 18ms/epoch - 6ms/step\n",
            "Epoch 200/300\n",
            "3/3 - 0s - loss: 2.1994e-05 - 18ms/epoch - 6ms/step\n",
            "Epoch 201/300\n",
            "3/3 - 0s - loss: 9.2189e-06 - 20ms/epoch - 7ms/step\n",
            "Epoch 202/300\n",
            "3/3 - 0s - loss: 2.2843e-05 - 19ms/epoch - 6ms/step\n",
            "Epoch 203/300\n",
            "3/3 - 0s - loss: 1.6837e-05 - 20ms/epoch - 7ms/step\n",
            "Epoch 204/300\n",
            "3/3 - 0s - loss: 1.6355e-06 - 19ms/epoch - 6ms/step\n",
            "Epoch 205/300\n",
            "3/3 - 0s - loss: 1.5922e-06 - 18ms/epoch - 6ms/step\n",
            "Epoch 206/300\n",
            "3/3 - 0s - loss: 1.7538e-06 - 17ms/epoch - 6ms/step\n",
            "Epoch 207/300\n",
            "3/3 - 0s - loss: 1.6336e-06 - 20ms/epoch - 7ms/step\n",
            "Epoch 208/300\n",
            "3/3 - 0s - loss: 1.8655e-06 - 19ms/epoch - 6ms/step\n",
            "Epoch 209/300\n",
            "3/3 - 0s - loss: 5.1924e-06 - 20ms/epoch - 7ms/step\n",
            "Epoch 210/300\n",
            "3/3 - 0s - loss: 3.4498e-06 - 19ms/epoch - 6ms/step\n",
            "Epoch 211/300\n",
            "3/3 - 0s - loss: 4.9823e-06 - 19ms/epoch - 6ms/step\n",
            "Epoch 212/300\n",
            "3/3 - 0s - loss: 9.1608e-06 - 19ms/epoch - 6ms/step\n",
            "Epoch 213/300\n",
            "3/3 - 0s - loss: 4.2214e-06 - 20ms/epoch - 7ms/step\n",
            "Epoch 214/300\n",
            "3/3 - 0s - loss: 2.9146e-06 - 19ms/epoch - 6ms/step\n",
            "Epoch 215/300\n",
            "3/3 - 0s - loss: 5.8312e-06 - 18ms/epoch - 6ms/step\n",
            "Epoch 216/300\n",
            "3/3 - 0s - loss: 1.0583e-05 - 20ms/epoch - 7ms/step\n",
            "Epoch 217/300\n",
            "3/3 - 0s - loss: 2.5826e-05 - 19ms/epoch - 6ms/step\n",
            "Epoch 218/300\n",
            "3/3 - 0s - loss: 3.2502e-05 - 18ms/epoch - 6ms/step\n",
            "Epoch 219/300\n",
            "3/3 - 0s - loss: 4.1142e-05 - 20ms/epoch - 7ms/step\n",
            "Epoch 220/300\n",
            "3/3 - 0s - loss: 3.7492e-05 - 20ms/epoch - 7ms/step\n",
            "Epoch 221/300\n",
            "3/3 - 0s - loss: 9.9260e-05 - 19ms/epoch - 6ms/step\n",
            "Epoch 222/300\n",
            "3/3 - 0s - loss: 1.3940e-04 - 21ms/epoch - 7ms/step\n",
            "Epoch 223/300\n",
            "3/3 - 0s - loss: 5.8098e-05 - 19ms/epoch - 6ms/step\n",
            "Epoch 224/300\n",
            "3/3 - 0s - loss: 1.0150e-04 - 19ms/epoch - 6ms/step\n",
            "Epoch 225/300\n",
            "3/3 - 0s - loss: 2.2505e-04 - 20ms/epoch - 7ms/step\n",
            "Epoch 226/300\n",
            "3/3 - 0s - loss: 2.6741e-04 - 18ms/epoch - 6ms/step\n",
            "Epoch 227/300\n",
            "3/3 - 0s - loss: 4.1984e-04 - 19ms/epoch - 6ms/step\n",
            "Epoch 228/300\n",
            "3/3 - 0s - loss: 4.8692e-04 - 21ms/epoch - 7ms/step\n",
            "Epoch 229/300\n",
            "3/3 - 0s - loss: 4.2046e-04 - 21ms/epoch - 7ms/step\n",
            "Epoch 230/300\n",
            "3/3 - 0s - loss: 2.2173e-04 - 22ms/epoch - 7ms/step\n",
            "Epoch 231/300\n",
            "3/3 - 0s - loss: 2.0161e-04 - 21ms/epoch - 7ms/step\n",
            "Epoch 232/300\n",
            "3/3 - 0s - loss: 1.7677e-04 - 20ms/epoch - 7ms/step\n",
            "Epoch 233/300\n",
            "3/3 - 0s - loss: 2.2249e-04 - 20ms/epoch - 7ms/step\n",
            "Epoch 234/300\n",
            "3/3 - 0s - loss: 3.8407e-04 - 20ms/epoch - 7ms/step\n",
            "Epoch 235/300\n",
            "3/3 - 0s - loss: 5.7620e-04 - 20ms/epoch - 7ms/step\n",
            "Epoch 236/300\n",
            "3/3 - 0s - loss: 1.7978e-04 - 21ms/epoch - 7ms/step\n",
            "Epoch 237/300\n",
            "3/3 - 0s - loss: 4.0398e-04 - 21ms/epoch - 7ms/step\n",
            "Epoch 238/300\n",
            "3/3 - 0s - loss: 8.0440e-05 - 22ms/epoch - 7ms/step\n",
            "Epoch 239/300\n",
            "3/3 - 0s - loss: 3.4447e-05 - 19ms/epoch - 6ms/step\n",
            "Epoch 240/300\n",
            "3/3 - 0s - loss: 5.3681e-05 - 21ms/epoch - 7ms/step\n",
            "Epoch 241/300\n",
            "3/3 - 0s - loss: 4.7400e-05 - 19ms/epoch - 6ms/step\n",
            "Epoch 242/300\n",
            "3/3 - 0s - loss: 6.1004e-05 - 20ms/epoch - 7ms/step\n",
            "Epoch 243/300\n",
            "3/3 - 0s - loss: 2.4012e-05 - 20ms/epoch - 7ms/step\n",
            "Epoch 244/300\n",
            "3/3 - 0s - loss: 5.8497e-05 - 20ms/epoch - 7ms/step\n",
            "Epoch 245/300\n",
            "3/3 - 0s - loss: 1.5778e-04 - 19ms/epoch - 6ms/step\n",
            "Epoch 246/300\n",
            "3/3 - 0s - loss: 2.8114e-04 - 19ms/epoch - 6ms/step\n",
            "Epoch 247/300\n",
            "3/3 - 0s - loss: 3.2226e-04 - 20ms/epoch - 7ms/step\n",
            "Epoch 248/300\n",
            "3/3 - 0s - loss: 3.3673e-04 - 19ms/epoch - 6ms/step\n",
            "Epoch 249/300\n",
            "3/3 - 0s - loss: 1.3174e-04 - 19ms/epoch - 6ms/step\n",
            "Epoch 250/300\n",
            "3/3 - 0s - loss: 7.4948e-05 - 19ms/epoch - 6ms/step\n",
            "Epoch 251/300\n",
            "3/3 - 0s - loss: 3.6113e-05 - 19ms/epoch - 6ms/step\n",
            "Epoch 252/300\n",
            "3/3 - 0s - loss: 1.6213e-05 - 18ms/epoch - 6ms/step\n",
            "Epoch 253/300\n",
            "3/3 - 0s - loss: 3.9395e-05 - 21ms/epoch - 7ms/step\n",
            "Epoch 254/300\n",
            "3/3 - 0s - loss: 5.8044e-05 - 21ms/epoch - 7ms/step\n",
            "Epoch 255/300\n",
            "3/3 - 0s - loss: 1.1072e-04 - 20ms/epoch - 7ms/step\n",
            "Epoch 256/300\n",
            "3/3 - 0s - loss: 1.6208e-04 - 19ms/epoch - 6ms/step\n",
            "Epoch 257/300\n",
            "3/3 - 0s - loss: 1.0409e-04 - 20ms/epoch - 7ms/step\n",
            "Epoch 258/300\n",
            "3/3 - 0s - loss: 1.2693e-04 - 19ms/epoch - 6ms/step\n",
            "Epoch 259/300\n",
            "3/3 - 0s - loss: 1.1229e-05 - 20ms/epoch - 7ms/step\n",
            "Epoch 260/300\n",
            "3/3 - 0s - loss: 1.1569e-05 - 20ms/epoch - 7ms/step\n",
            "Epoch 261/300\n",
            "3/3 - 0s - loss: 1.7546e-05 - 20ms/epoch - 7ms/step\n",
            "Epoch 262/300\n",
            "3/3 - 0s - loss: 2.0417e-05 - 23ms/epoch - 8ms/step\n",
            "Epoch 263/300\n",
            "3/3 - 0s - loss: 3.0443e-05 - 21ms/epoch - 7ms/step\n",
            "Epoch 264/300\n",
            "3/3 - 0s - loss: 1.3013e-05 - 19ms/epoch - 6ms/step\n",
            "Epoch 265/300\n",
            "3/3 - 0s - loss: 1.3680e-05 - 19ms/epoch - 6ms/step\n",
            "Epoch 266/300\n",
            "3/3 - 0s - loss: 1.0640e-05 - 18ms/epoch - 6ms/step\n",
            "Epoch 267/300\n",
            "3/3 - 0s - loss: 6.5233e-06 - 20ms/epoch - 7ms/step\n",
            "Epoch 268/300\n",
            "3/3 - 0s - loss: 5.5833e-06 - 19ms/epoch - 6ms/step\n",
            "Epoch 269/300\n",
            "3/3 - 0s - loss: 5.7991e-06 - 20ms/epoch - 7ms/step\n",
            "Epoch 270/300\n",
            "3/3 - 0s - loss: 3.0551e-06 - 19ms/epoch - 6ms/step\n",
            "Epoch 271/300\n",
            "3/3 - 0s - loss: 4.9807e-06 - 20ms/epoch - 7ms/step\n",
            "Epoch 272/300\n",
            "3/3 - 0s - loss: 1.8531e-06 - 20ms/epoch - 7ms/step\n",
            "Epoch 273/300\n",
            "3/3 - 0s - loss: 1.1716e-06 - 19ms/epoch - 6ms/step\n",
            "Epoch 274/300\n",
            "3/3 - 0s - loss: 3.4832e-06 - 19ms/epoch - 6ms/step\n",
            "Epoch 275/300\n",
            "3/3 - 0s - loss: 1.6178e-06 - 20ms/epoch - 7ms/step\n",
            "Epoch 276/300\n",
            "3/3 - 0s - loss: 1.1862e-06 - 20ms/epoch - 7ms/step\n",
            "Epoch 277/300\n",
            "3/3 - 0s - loss: 7.7641e-07 - 18ms/epoch - 6ms/step\n",
            "Epoch 278/300\n",
            "3/3 - 0s - loss: 6.3440e-07 - 18ms/epoch - 6ms/step\n",
            "Epoch 279/300\n",
            "3/3 - 0s - loss: 2.2680e-07 - 19ms/epoch - 6ms/step\n",
            "Epoch 280/300\n",
            "3/3 - 0s - loss: 2.9163e-07 - 21ms/epoch - 7ms/step\n",
            "Epoch 281/300\n",
            "3/3 - 0s - loss: 2.6867e-07 - 22ms/epoch - 7ms/step\n",
            "Epoch 282/300\n",
            "3/3 - 0s - loss: 1.8295e-07 - 20ms/epoch - 7ms/step\n",
            "Epoch 283/300\n",
            "3/3 - 0s - loss: 2.6912e-07 - 21ms/epoch - 7ms/step\n",
            "Epoch 284/300\n",
            "3/3 - 0s - loss: 1.8664e-07 - 18ms/epoch - 6ms/step\n",
            "Epoch 285/300\n",
            "3/3 - 0s - loss: 9.9582e-08 - 20ms/epoch - 7ms/step\n",
            "Epoch 286/300\n",
            "3/3 - 0s - loss: 1.8381e-07 - 19ms/epoch - 6ms/step\n",
            "Epoch 287/300\n",
            "3/3 - 0s - loss: 7.6137e-08 - 20ms/epoch - 7ms/step\n",
            "Epoch 288/300\n",
            "3/3 - 0s - loss: 1.0833e-07 - 20ms/epoch - 7ms/step\n",
            "Epoch 289/300\n",
            "3/3 - 0s - loss: 1.4442e-07 - 20ms/epoch - 7ms/step\n",
            "Epoch 290/300\n",
            "3/3 - 0s - loss: 2.5323e-07 - 20ms/epoch - 7ms/step\n",
            "Epoch 291/300\n",
            "3/3 - 0s - loss: 5.5320e-07 - 20ms/epoch - 7ms/step\n",
            "Epoch 292/300\n",
            "3/3 - 0s - loss: 2.9031e-07 - 19ms/epoch - 6ms/step\n",
            "Epoch 293/300\n",
            "3/3 - 0s - loss: 2.6064e-07 - 21ms/epoch - 7ms/step\n",
            "Epoch 294/300\n",
            "3/3 - 0s - loss: 2.2417e-07 - 19ms/epoch - 6ms/step\n",
            "Epoch 295/300\n",
            "3/3 - 0s - loss: 1.3276e-07 - 21ms/epoch - 7ms/step\n",
            "Epoch 296/300\n",
            "3/3 - 0s - loss: 2.2901e-07 - 18ms/epoch - 6ms/step\n",
            "Epoch 297/300\n",
            "3/3 - 0s - loss: 1.2919e-07 - 19ms/epoch - 6ms/step\n",
            "Epoch 298/300\n",
            "3/3 - 0s - loss: 8.4093e-08 - 19ms/epoch - 6ms/step\n",
            "Epoch 299/300\n",
            "3/3 - 0s - loss: 2.6522e-07 - 19ms/epoch - 6ms/step\n",
            "Epoch 300/300\n",
            "3/3 - 0s - loss: 4.0536e-07 - 18ms/epoch - 6ms/step\n"
          ]
        },
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "<keras.src.callbacks.History at 0x7bae96d9fcd0>"
            ]
          },
          "metadata": {},
          "execution_count": 45
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "n-aNP4n3sqG_",
        "outputId": "3db5cce8-6d7b-4c28-a5c3-a7500121d8ba",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 443
        }
      },
      "source": [
        "# Plotting code, feel free to ignore.\n",
        "h = 1.0\n",
        "x_min, x_max = X[:, 0].min() - 5, X[:, 0].max() + 5\n",
        "y_min, y_max = X[:, 1].min() - 5, X[:, 1].max() + 5\n",
        "xx, yy = np.meshgrid(np.arange(x_min, x_max, h),\n",
        "                     np.arange(y_min, y_max, h))\n",
        "\n",
        "# here \"model\" is your model's prediction (classification) function\n",
        "Z = tn_model.predict(np.c_[xx.ravel(), yy.ravel()])\n",
        "\n",
        "# Put the result into a color plot\n",
        "Z = Z.reshape(xx.shape)\n",
        "plt.contourf(xx, yy, Z)\n",
        "plt.axis('off')\n",
        "\n",
        "# Plot also the training points\n",
        "plt.scatter(X[:, 0], X[:, 1], c=Y, cmap=plt.cm.Paired)"
      ],
      "execution_count": 46,
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "14/14 [==============================] - 0s 4ms/step\n"
          ]
        },
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "<matplotlib.collections.PathCollection at 0x7bae9712eb90>"
            ]
          },
          "metadata": {},
          "execution_count": 46
        },
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "<Figure size 640x480 with 1 Axes>"
            ],
            "image/png": "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\n"
          },
          "metadata": {}
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "seconds = time.time()\n",
        "print(\"Time in seconds since end of run:\", seconds)\n",
        "local_time = time.ctime(seconds)\n",
        "print(local_time)"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 0
        },
        "id": "wfZCzuq9KY9b",
        "outputId": "3129fc8b-aaae-4994-f193-5448d1cc122f"
      },
      "execution_count": 47,
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "Time in seconds since end of run: 1710115761.685787\n",
            "Mon Mar 11 00:09:21 2024\n"
          ]
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "seconds = time.time()\n",
        "print(\"Time in seconds since beginning of run:\", seconds)\n",
        "local_time = time.ctime(seconds)\n",
        "print(local_time)"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 0
        },
        "id": "Ft6S13x6KuEQ",
        "outputId": "fc36940c-52de-499e-87b6-dcbccf1a011d"
      },
      "execution_count": 48,
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "Time in seconds since beginning of run: 1710115761.6966555\n",
            "Mon Mar 11 00:09:21 2024\n"
          ]
        }
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "BMxSJo5gtOmQ"
      },
      "source": [
        "# VS Fully Connected"
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "NKQx7stYswzU",
        "outputId": "f3f49a5b-0947-487b-8b5b-125e3751bd04",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 11458
        }
      },
      "source": [
        "optimizer = Adam(learning_rate=0.01)\n",
        "fc_model.compile(optimizer=optimizer, loss=\"mean_squared_error\")\n",
        "fc_model.fit(X, Y, epochs=300, verbose=2)\n",
        "# Plotting code, feel free to ignore.\n",
        "h = 1.0\n",
        "x_min, x_max = X[:, 0].min() - 5, X[:, 0].max() + 5\n",
        "y_min, y_max = X[:, 1].min() - 5, X[:, 1].max() + 5\n",
        "xx, yy = np.meshgrid(np.arange(x_min, x_max, h),\n",
        "                     np.arange(y_min, y_max, h))\n",
        "\n",
        "# here \"model\" is your model's prediction (classification) function\n",
        "Z = fc_model.predict(np.c_[xx.ravel(), yy.ravel()])\n",
        "\n",
        "# Put the result into a color plot\n",
        "Z = Z.reshape(xx.shape)\n",
        "plt.contourf(xx, yy, Z)\n",
        "plt.axis('off')\n",
        "\n",
        "# Plot also the training points\n",
        "plt.scatter(X[:, 0], X[:, 1], c=Y, cmap=plt.cm.Paired)"
      ],
      "execution_count": 49,
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "Epoch 1/300\n",
            "3/3 - 1s - loss: 14.6182 - 646ms/epoch - 215ms/step\n",
            "Epoch 2/300\n",
            "3/3 - 0s - loss: 9.5333 - 27ms/epoch - 9ms/step\n",
            "Epoch 3/300\n",
            "3/3 - 0s - loss: 2.7624 - 26ms/epoch - 9ms/step\n",
            "Epoch 4/300\n",
            "3/3 - 0s - loss: 0.6011 - 29ms/epoch - 10ms/step\n",
            "Epoch 5/300\n",
            "3/3 - 0s - loss: 0.5402 - 25ms/epoch - 8ms/step\n",
            "Epoch 6/300\n",
            "3/3 - 0s - loss: 0.4446 - 25ms/epoch - 8ms/step\n",
            "Epoch 7/300\n",
            "3/3 - 0s - loss: 0.2405 - 27ms/epoch - 9ms/step\n",
            "Epoch 8/300\n",
            "3/3 - 0s - loss: 0.1653 - 27ms/epoch - 9ms/step\n",
            "Epoch 9/300\n",
            "3/3 - 0s - loss: 0.1705 - 28ms/epoch - 9ms/step\n",
            "Epoch 10/300\n",
            "3/3 - 0s - loss: 0.1294 - 24ms/epoch - 8ms/step\n",
            "Epoch 11/300\n",
            "3/3 - 0s - loss: 0.0976 - 27ms/epoch - 9ms/step\n",
            "Epoch 12/300\n",
            "3/3 - 0s - loss: 0.1124 - 27ms/epoch - 9ms/step\n",
            "Epoch 13/300\n",
            "3/3 - 0s - loss: 0.0963 - 27ms/epoch - 9ms/step\n",
            "Epoch 14/300\n",
            "3/3 - 0s - loss: 0.0644 - 25ms/epoch - 8ms/step\n",
            "Epoch 15/300\n",
            "3/3 - 0s - loss: 0.0824 - 32ms/epoch - 11ms/step\n",
            "Epoch 16/300\n",
            "3/3 - 0s - loss: 0.0681 - 26ms/epoch - 9ms/step\n",
            "Epoch 17/300\n",
            "3/3 - 0s - loss: 0.0599 - 28ms/epoch - 9ms/step\n",
            "Epoch 18/300\n",
            "3/3 - 0s - loss: 0.0606 - 25ms/epoch - 8ms/step\n",
            "Epoch 19/300\n",
            "3/3 - 0s - loss: 0.0519 - 23ms/epoch - 8ms/step\n",
            "Epoch 20/300\n",
            "3/3 - 0s - loss: 0.0387 - 28ms/epoch - 9ms/step\n",
            "Epoch 21/300\n",
            "3/3 - 0s - loss: 0.0312 - 28ms/epoch - 9ms/step\n",
            "Epoch 22/300\n",
            "3/3 - 0s - loss: 0.0288 - 28ms/epoch - 9ms/step\n",
            "Epoch 23/300\n",
            "3/3 - 0s - loss: 0.0217 - 25ms/epoch - 8ms/step\n",
            "Epoch 24/300\n",
            "3/3 - 0s - loss: 0.0193 - 27ms/epoch - 9ms/step\n",
            "Epoch 25/300\n",
            "3/3 - 0s - loss: 0.0152 - 28ms/epoch - 9ms/step\n",
            "Epoch 26/300\n",
            "3/3 - 0s - loss: 0.0137 - 25ms/epoch - 8ms/step\n",
            "Epoch 27/300\n",
            "3/3 - 0s - loss: 0.0110 - 28ms/epoch - 9ms/step\n",
            "Epoch 28/300\n",
            "3/3 - 0s - loss: 0.0101 - 29ms/epoch - 10ms/step\n",
            "Epoch 29/300\n",
            "3/3 - 0s - loss: 0.0081 - 28ms/epoch - 9ms/step\n",
            "Epoch 30/300\n",
            "3/3 - 0s - loss: 0.0093 - 26ms/epoch - 9ms/step\n",
            "Epoch 31/300\n",
            "3/3 - 0s - loss: 0.0074 - 23ms/epoch - 8ms/step\n",
            "Epoch 32/300\n",
            "3/3 - 0s - loss: 0.0066 - 29ms/epoch - 10ms/step\n",
            "Epoch 33/300\n",
            "3/3 - 0s - loss: 0.0064 - 24ms/epoch - 8ms/step\n",
            "Epoch 34/300\n",
            "3/3 - 0s - loss: 0.0070 - 26ms/epoch - 9ms/step\n",
            "Epoch 35/300\n",
            "3/3 - 0s - loss: 0.0052 - 27ms/epoch - 9ms/step\n",
            "Epoch 36/300\n",
            "3/3 - 0s - loss: 0.0051 - 31ms/epoch - 10ms/step\n",
            "Epoch 37/300\n",
            "3/3 - 0s - loss: 0.0049 - 25ms/epoch - 8ms/step\n",
            "Epoch 38/300\n",
            "3/3 - 0s - loss: 0.0046 - 29ms/epoch - 10ms/step\n",
            "Epoch 39/300\n",
            "3/3 - 0s - loss: 0.0038 - 25ms/epoch - 8ms/step\n",
            "Epoch 40/300\n",
            "3/3 - 0s - loss: 0.0042 - 28ms/epoch - 9ms/step\n",
            "Epoch 41/300\n",
            "3/3 - 0s - loss: 0.0028 - 27ms/epoch - 9ms/step\n",
            "Epoch 42/300\n",
            "3/3 - 0s - loss: 0.0025 - 23ms/epoch - 8ms/step\n",
            "Epoch 43/300\n",
            "3/3 - 0s - loss: 0.0034 - 26ms/epoch - 9ms/step\n",
            "Epoch 44/300\n",
            "3/3 - 0s - loss: 0.0032 - 27ms/epoch - 9ms/step\n",
            "Epoch 45/300\n",
            "3/3 - 0s - loss: 0.0047 - 26ms/epoch - 9ms/step\n",
            "Epoch 46/300\n",
            "3/3 - 0s - loss: 0.0085 - 24ms/epoch - 8ms/step\n",
            "Epoch 47/300\n",
            "3/3 - 0s - loss: 0.0104 - 24ms/epoch - 8ms/step\n",
            "Epoch 48/300\n",
            "3/3 - 0s - loss: 0.0184 - 28ms/epoch - 9ms/step\n",
            "Epoch 49/300\n",
            "3/3 - 0s - loss: 0.0143 - 23ms/epoch - 8ms/step\n",
            "Epoch 50/300\n",
            "3/3 - 0s - loss: 0.0074 - 29ms/epoch - 10ms/step\n",
            "Epoch 51/300\n",
            "3/3 - 0s - loss: 0.0078 - 25ms/epoch - 8ms/step\n",
            "Epoch 52/300\n",
            "3/3 - 0s - loss: 0.0107 - 29ms/epoch - 10ms/step\n",
            "Epoch 53/300\n",
            "3/3 - 0s - loss: 0.0098 - 26ms/epoch - 9ms/step\n",
            "Epoch 54/300\n",
            "3/3 - 0s - loss: 0.0056 - 28ms/epoch - 9ms/step\n",
            "Epoch 55/300\n",
            "3/3 - 0s - loss: 0.0073 - 23ms/epoch - 8ms/step\n",
            "Epoch 56/300\n",
            "3/3 - 0s - loss: 0.0100 - 31ms/epoch - 10ms/step\n",
            "Epoch 57/300\n",
            "3/3 - 0s - loss: 0.0158 - 30ms/epoch - 10ms/step\n",
            "Epoch 58/300\n",
            "3/3 - 0s - loss: 0.0169 - 30ms/epoch - 10ms/step\n",
            "Epoch 59/300\n",
            "3/3 - 0s - loss: 0.0159 - 31ms/epoch - 10ms/step\n",
            "Epoch 60/300\n",
            "3/3 - 0s - loss: 0.0159 - 27ms/epoch - 9ms/step\n",
            "Epoch 61/300\n",
            "3/3 - 0s - loss: 0.0103 - 24ms/epoch - 8ms/step\n",
            "Epoch 62/300\n",
            "3/3 - 0s - loss: 0.0083 - 27ms/epoch - 9ms/step\n",
            "Epoch 63/300\n",
            "3/3 - 0s - loss: 0.0085 - 26ms/epoch - 9ms/step\n",
            "Epoch 64/300\n",
            "3/3 - 0s - loss: 0.0133 - 29ms/epoch - 10ms/step\n",
            "Epoch 65/300\n",
            "3/3 - 0s - loss: 0.0086 - 27ms/epoch - 9ms/step\n",
            "Epoch 66/300\n",
            "3/3 - 0s - loss: 0.0029 - 29ms/epoch - 10ms/step\n",
            "Epoch 67/300\n",
            "3/3 - 0s - loss: 0.0017 - 25ms/epoch - 8ms/step\n",
            "Epoch 68/300\n",
            "3/3 - 0s - loss: 0.0025 - 28ms/epoch - 9ms/step\n",
            "Epoch 69/300\n",
            "3/3 - 0s - loss: 0.0035 - 23ms/epoch - 8ms/step\n",
            "Epoch 70/300\n",
            "3/3 - 0s - loss: 0.0034 - 29ms/epoch - 10ms/step\n",
            "Epoch 71/300\n",
            "3/3 - 0s - loss: 0.0037 - 26ms/epoch - 9ms/step\n",
            "Epoch 72/300\n",
            "3/3 - 0s - loss: 0.0035 - 30ms/epoch - 10ms/step\n",
            "Epoch 73/300\n",
            "3/3 - 0s - loss: 0.0029 - 31ms/epoch - 10ms/step\n",
            "Epoch 74/300\n",
            "3/3 - 0s - loss: 0.0024 - 32ms/epoch - 11ms/step\n",
            "Epoch 75/300\n",
            "3/3 - 0s - loss: 0.0040 - 24ms/epoch - 8ms/step\n",
            "Epoch 76/300\n",
            "3/3 - 0s - loss: 0.0028 - 27ms/epoch - 9ms/step\n",
            "Epoch 77/300\n",
            "3/3 - 0s - loss: 0.0026 - 26ms/epoch - 9ms/step\n",
            "Epoch 78/300\n",
            "3/3 - 0s - loss: 0.0022 - 24ms/epoch - 8ms/step\n",
            "Epoch 79/300\n",
            "3/3 - 0s - loss: 0.0015 - 24ms/epoch - 8ms/step\n",
            "Epoch 80/300\n",
            "3/3 - 0s - loss: 0.0013 - 28ms/epoch - 9ms/step\n",
            "Epoch 81/300\n",
            "3/3 - 0s - loss: 0.0015 - 25ms/epoch - 8ms/step\n",
            "Epoch 82/300\n",
            "3/3 - 0s - loss: 0.0014 - 29ms/epoch - 10ms/step\n",
            "Epoch 83/300\n",
            "3/3 - 0s - loss: 0.0019 - 21ms/epoch - 7ms/step\n",
            "Epoch 84/300\n",
            "3/3 - 0s - loss: 0.0016 - 30ms/epoch - 10ms/step\n",
            "Epoch 85/300\n",
            "3/3 - 0s - loss: 0.0012 - 26ms/epoch - 9ms/step\n",
            "Epoch 86/300\n",
            "3/3 - 0s - loss: 0.0017 - 22ms/epoch - 7ms/step\n",
            "Epoch 87/300\n",
            "3/3 - 0s - loss: 0.0017 - 29ms/epoch - 10ms/step\n",
            "Epoch 88/300\n",
            "3/3 - 0s - loss: 0.0013 - 24ms/epoch - 8ms/step\n",
            "Epoch 89/300\n",
            "3/3 - 0s - loss: 0.0015 - 25ms/epoch - 8ms/step\n",
            "Epoch 90/300\n",
            "3/3 - 0s - loss: 0.0031 - 31ms/epoch - 10ms/step\n",
            "Epoch 91/300\n",
            "3/3 - 0s - loss: 0.0053 - 29ms/epoch - 10ms/step\n",
            "Epoch 92/300\n",
            "3/3 - 0s - loss: 0.0021 - 28ms/epoch - 9ms/step\n",
            "Epoch 93/300\n",
            "3/3 - 0s - loss: 0.0017 - 27ms/epoch - 9ms/step\n",
            "Epoch 94/300\n",
            "3/3 - 0s - loss: 0.0019 - 30ms/epoch - 10ms/step\n",
            "Epoch 95/300\n",
            "3/3 - 0s - loss: 0.0040 - 29ms/epoch - 10ms/step\n",
            "Epoch 96/300\n",
            "3/3 - 0s - loss: 0.0064 - 26ms/epoch - 9ms/step\n",
            "Epoch 97/300\n",
            "3/3 - 0s - loss: 0.0082 - 28ms/epoch - 9ms/step\n",
            "Epoch 98/300\n",
            "3/3 - 0s - loss: 0.0066 - 27ms/epoch - 9ms/step\n",
            "Epoch 99/300\n",
            "3/3 - 0s - loss: 0.0051 - 30ms/epoch - 10ms/step\n",
            "Epoch 100/300\n",
            "3/3 - 0s - loss: 0.0039 - 26ms/epoch - 9ms/step\n",
            "Epoch 101/300\n",
            "3/3 - 0s - loss: 0.0045 - 29ms/epoch - 10ms/step\n",
            "Epoch 102/300\n",
            "3/3 - 0s - loss: 0.0025 - 25ms/epoch - 8ms/step\n",
            "Epoch 103/300\n",
            "3/3 - 0s - loss: 0.0043 - 28ms/epoch - 9ms/step\n",
            "Epoch 104/300\n",
            "3/3 - 0s - loss: 0.0025 - 30ms/epoch - 10ms/step\n",
            "Epoch 105/300\n",
            "3/3 - 0s - loss: 0.0034 - 28ms/epoch - 9ms/step\n",
            "Epoch 106/300\n",
            "3/3 - 0s - loss: 0.0029 - 26ms/epoch - 9ms/step\n",
            "Epoch 107/300\n",
            "3/3 - 0s - loss: 0.0026 - 29ms/epoch - 10ms/step\n",
            "Epoch 108/300\n",
            "3/3 - 0s - loss: 0.0016 - 33ms/epoch - 11ms/step\n",
            "Epoch 109/300\n",
            "3/3 - 0s - loss: 0.0025 - 30ms/epoch - 10ms/step\n",
            "Epoch 110/300\n",
            "3/3 - 0s - loss: 0.0049 - 32ms/epoch - 11ms/step\n",
            "Epoch 111/300\n",
            "3/3 - 0s - loss: 0.0053 - 25ms/epoch - 8ms/step\n",
            "Epoch 112/300\n",
            "3/3 - 0s - loss: 0.0040 - 30ms/epoch - 10ms/step\n",
            "Epoch 113/300\n",
            "3/3 - 0s - loss: 0.0057 - 25ms/epoch - 8ms/step\n",
            "Epoch 114/300\n",
            "3/3 - 0s - loss: 0.0042 - 30ms/epoch - 10ms/step\n",
            "Epoch 115/300\n",
            "3/3 - 0s - loss: 0.0032 - 26ms/epoch - 9ms/step\n",
            "Epoch 116/300\n",
            "3/3 - 0s - loss: 0.0029 - 24ms/epoch - 8ms/step\n",
            "Epoch 117/300\n",
            "3/3 - 0s - loss: 0.0034 - 28ms/epoch - 9ms/step\n",
            "Epoch 118/300\n",
            "3/3 - 0s - loss: 0.0046 - 26ms/epoch - 9ms/step\n",
            "Epoch 119/300\n",
            "3/3 - 0s - loss: 0.0040 - 25ms/epoch - 8ms/step\n",
            "Epoch 120/300\n",
            "3/3 - 0s - loss: 0.0048 - 28ms/epoch - 9ms/step\n",
            "Epoch 121/300\n",
            "3/3 - 0s - loss: 0.0034 - 26ms/epoch - 9ms/step\n",
            "Epoch 122/300\n",
            "3/3 - 0s - loss: 0.0055 - 23ms/epoch - 8ms/step\n",
            "Epoch 123/300\n",
            "3/3 - 0s - loss: 0.0040 - 29ms/epoch - 10ms/step\n",
            "Epoch 124/300\n",
            "3/3 - 0s - loss: 0.0038 - 24ms/epoch - 8ms/step\n",
            "Epoch 125/300\n",
            "3/3 - 0s - loss: 0.0042 - 26ms/epoch - 9ms/step\n",
            "Epoch 126/300\n",
            "3/3 - 0s - loss: 0.0033 - 29ms/epoch - 10ms/step\n",
            "Epoch 127/300\n",
            "3/3 - 0s - loss: 0.0027 - 24ms/epoch - 8ms/step\n",
            "Epoch 128/300\n",
            "3/3 - 0s - loss: 0.0018 - 25ms/epoch - 8ms/step\n",
            "Epoch 129/300\n",
            "3/3 - 0s - loss: 0.0012 - 25ms/epoch - 8ms/step\n",
            "Epoch 130/300\n",
            "3/3 - 0s - loss: 7.8639e-04 - 27ms/epoch - 9ms/step\n",
            "Epoch 131/300\n",
            "3/3 - 0s - loss: 8.9119e-04 - 24ms/epoch - 8ms/step\n",
            "Epoch 132/300\n",
            "3/3 - 0s - loss: 0.0017 - 27ms/epoch - 9ms/step\n",
            "Epoch 133/300\n",
            "3/3 - 0s - loss: 0.0039 - 23ms/epoch - 8ms/step\n",
            "Epoch 134/300\n",
            "3/3 - 0s - loss: 0.0031 - 28ms/epoch - 9ms/step\n",
            "Epoch 135/300\n",
            "3/3 - 0s - loss: 0.0053 - 27ms/epoch - 9ms/step\n",
            "Epoch 136/300\n",
            "3/3 - 0s - loss: 0.0050 - 25ms/epoch - 8ms/step\n",
            "Epoch 137/300\n",
            "3/3 - 0s - loss: 0.0028 - 25ms/epoch - 8ms/step\n",
            "Epoch 138/300\n",
            "3/3 - 0s - loss: 0.0018 - 24ms/epoch - 8ms/step\n",
            "Epoch 139/300\n",
            "3/3 - 0s - loss: 0.0017 - 23ms/epoch - 8ms/step\n",
            "Epoch 140/300\n",
            "3/3 - 0s - loss: 0.0024 - 27ms/epoch - 9ms/step\n",
            "Epoch 141/300\n",
            "3/3 - 0s - loss: 0.0021 - 23ms/epoch - 8ms/step\n",
            "Epoch 142/300\n",
            "3/3 - 0s - loss: 0.0017 - 28ms/epoch - 9ms/step\n",
            "Epoch 143/300\n",
            "3/3 - 0s - loss: 0.0024 - 27ms/epoch - 9ms/step\n",
            "Epoch 144/300\n",
            "3/3 - 0s - loss: 0.0019 - 26ms/epoch - 9ms/step\n",
            "Epoch 145/300\n",
            "3/3 - 0s - loss: 0.0014 - 24ms/epoch - 8ms/step\n",
            "Epoch 146/300\n",
            "3/3 - 0s - loss: 0.0012 - 30ms/epoch - 10ms/step\n",
            "Epoch 147/300\n",
            "3/3 - 0s - loss: 7.4092e-04 - 23ms/epoch - 8ms/step\n",
            "Epoch 148/300\n",
            "3/3 - 0s - loss: 6.1002e-04 - 24ms/epoch - 8ms/step\n",
            "Epoch 149/300\n",
            "3/3 - 0s - loss: 6.8188e-04 - 26ms/epoch - 9ms/step\n",
            "Epoch 150/300\n",
            "3/3 - 0s - loss: 9.9547e-04 - 27ms/epoch - 9ms/step\n",
            "Epoch 151/300\n",
            "3/3 - 0s - loss: 5.2051e-04 - 29ms/epoch - 10ms/step\n",
            "Epoch 152/300\n",
            "3/3 - 0s - loss: 9.0719e-04 - 26ms/epoch - 9ms/step\n",
            "Epoch 153/300\n",
            "3/3 - 0s - loss: 9.8413e-04 - 27ms/epoch - 9ms/step\n",
            "Epoch 154/300\n",
            "3/3 - 0s - loss: 9.1533e-04 - 28ms/epoch - 9ms/step\n",
            "Epoch 155/300\n",
            "3/3 - 0s - loss: 9.6080e-04 - 27ms/epoch - 9ms/step\n",
            "Epoch 156/300\n",
            "3/3 - 0s - loss: 0.0010 - 27ms/epoch - 9ms/step\n",
            "Epoch 157/300\n",
            "3/3 - 0s - loss: 9.6166e-04 - 26ms/epoch - 9ms/step\n",
            "Epoch 158/300\n",
            "3/3 - 0s - loss: 7.0400e-04 - 26ms/epoch - 9ms/step\n",
            "Epoch 159/300\n",
            "3/3 - 0s - loss: 7.8728e-04 - 24ms/epoch - 8ms/step\n",
            "Epoch 160/300\n",
            "3/3 - 0s - loss: 6.4709e-04 - 30ms/epoch - 10ms/step\n",
            "Epoch 161/300\n",
            "3/3 - 0s - loss: 4.7493e-04 - 25ms/epoch - 8ms/step\n",
            "Epoch 162/300\n",
            "3/3 - 0s - loss: 6.2475e-04 - 26ms/epoch - 9ms/step\n",
            "Epoch 163/300\n",
            "3/3 - 0s - loss: 3.2990e-04 - 31ms/epoch - 10ms/step\n",
            "Epoch 164/300\n",
            "3/3 - 0s - loss: 4.8631e-04 - 24ms/epoch - 8ms/step\n",
            "Epoch 165/300\n",
            "3/3 - 0s - loss: 0.0011 - 25ms/epoch - 8ms/step\n",
            "Epoch 166/300\n",
            "3/3 - 0s - loss: 9.8064e-04 - 26ms/epoch - 9ms/step\n",
            "Epoch 167/300\n",
            "3/3 - 0s - loss: 0.0013 - 27ms/epoch - 9ms/step\n",
            "Epoch 168/300\n",
            "3/3 - 0s - loss: 8.0763e-04 - 28ms/epoch - 9ms/step\n",
            "Epoch 169/300\n",
            "3/3 - 0s - loss: 0.0011 - 24ms/epoch - 8ms/step\n",
            "Epoch 170/300\n",
            "3/3 - 0s - loss: 7.1007e-04 - 27ms/epoch - 9ms/step\n",
            "Epoch 171/300\n",
            "3/3 - 0s - loss: 5.8422e-04 - 26ms/epoch - 9ms/step\n",
            "Epoch 172/300\n",
            "3/3 - 0s - loss: 8.1971e-04 - 25ms/epoch - 8ms/step\n",
            "Epoch 173/300\n",
            "3/3 - 0s - loss: 7.0568e-04 - 26ms/epoch - 9ms/step\n",
            "Epoch 174/300\n",
            "3/3 - 0s - loss: 7.0937e-04 - 30ms/epoch - 10ms/step\n",
            "Epoch 175/300\n",
            "3/3 - 0s - loss: 6.5905e-04 - 26ms/epoch - 9ms/step\n",
            "Epoch 176/300\n",
            "3/3 - 0s - loss: 6.6743e-04 - 25ms/epoch - 8ms/step\n",
            "Epoch 177/300\n",
            "3/3 - 0s - loss: 4.6973e-04 - 27ms/epoch - 9ms/step\n",
            "Epoch 178/300\n",
            "3/3 - 0s - loss: 7.5175e-04 - 28ms/epoch - 9ms/step\n",
            "Epoch 179/300\n",
            "3/3 - 0s - loss: 9.1561e-04 - 28ms/epoch - 9ms/step\n",
            "Epoch 180/300\n",
            "3/3 - 0s - loss: 6.9723e-04 - 26ms/epoch - 9ms/step\n",
            "Epoch 181/300\n",
            "3/3 - 0s - loss: 7.1438e-04 - 26ms/epoch - 9ms/step\n",
            "Epoch 182/300\n",
            "3/3 - 0s - loss: 8.7315e-04 - 22ms/epoch - 7ms/step\n",
            "Epoch 183/300\n",
            "3/3 - 0s - loss: 8.3078e-04 - 25ms/epoch - 8ms/step\n",
            "Epoch 184/300\n",
            "3/3 - 0s - loss: 6.0797e-04 - 28ms/epoch - 9ms/step\n",
            "Epoch 185/300\n",
            "3/3 - 0s - loss: 4.2544e-04 - 24ms/epoch - 8ms/step\n",
            "Epoch 186/300\n",
            "3/3 - 0s - loss: 4.4609e-04 - 29ms/epoch - 10ms/step\n",
            "Epoch 187/300\n",
            "3/3 - 0s - loss: 4.1733e-04 - 26ms/epoch - 9ms/step\n",
            "Epoch 188/300\n",
            "3/3 - 0s - loss: 5.7669e-04 - 27ms/epoch - 9ms/step\n",
            "Epoch 189/300\n",
            "3/3 - 0s - loss: 6.6056e-04 - 25ms/epoch - 8ms/step\n",
            "Epoch 190/300\n",
            "3/3 - 0s - loss: 8.6615e-04 - 25ms/epoch - 8ms/step\n",
            "Epoch 191/300\n",
            "3/3 - 0s - loss: 8.4231e-04 - 30ms/epoch - 10ms/step\n",
            "Epoch 192/300\n",
            "3/3 - 0s - loss: 8.3460e-04 - 29ms/epoch - 10ms/step\n",
            "Epoch 193/300\n",
            "3/3 - 0s - loss: 9.8196e-04 - 27ms/epoch - 9ms/step\n",
            "Epoch 194/300\n",
            "3/3 - 0s - loss: 0.0014 - 27ms/epoch - 9ms/step\n",
            "Epoch 195/300\n",
            "3/3 - 0s - loss: 9.5272e-04 - 26ms/epoch - 9ms/step\n",
            "Epoch 196/300\n",
            "3/3 - 0s - loss: 0.0011 - 28ms/epoch - 9ms/step\n",
            "Epoch 197/300\n",
            "3/3 - 0s - loss: 0.0021 - 24ms/epoch - 8ms/step\n",
            "Epoch 198/300\n",
            "3/3 - 0s - loss: 0.0029 - 31ms/epoch - 10ms/step\n",
            "Epoch 199/300\n",
            "3/3 - 0s - loss: 0.0023 - 30ms/epoch - 10ms/step\n",
            "Epoch 200/300\n",
            "3/3 - 0s - loss: 0.0023 - 27ms/epoch - 9ms/step\n",
            "Epoch 201/300\n",
            "3/3 - 0s - loss: 0.0027 - 22ms/epoch - 7ms/step\n",
            "Epoch 202/300\n",
            "3/3 - 0s - loss: 0.0029 - 31ms/epoch - 10ms/step\n",
            "Epoch 203/300\n",
            "3/3 - 0s - loss: 0.0049 - 26ms/epoch - 9ms/step\n",
            "Epoch 204/300\n",
            "3/3 - 0s - loss: 0.0029 - 25ms/epoch - 8ms/step\n",
            "Epoch 205/300\n",
            "3/3 - 0s - loss: 0.0025 - 28ms/epoch - 9ms/step\n",
            "Epoch 206/300\n",
            "3/3 - 0s - loss: 0.0035 - 27ms/epoch - 9ms/step\n",
            "Epoch 207/300\n",
            "3/3 - 0s - loss: 0.0022 - 25ms/epoch - 8ms/step\n",
            "Epoch 208/300\n",
            "3/3 - 0s - loss: 0.0030 - 26ms/epoch - 9ms/step\n",
            "Epoch 209/300\n",
            "3/3 - 0s - loss: 0.0027 - 27ms/epoch - 9ms/step\n",
            "Epoch 210/300\n",
            "3/3 - 0s - loss: 0.0024 - 26ms/epoch - 9ms/step\n",
            "Epoch 211/300\n",
            "3/3 - 0s - loss: 0.0018 - 26ms/epoch - 9ms/step\n",
            "Epoch 212/300\n",
            "3/3 - 0s - loss: 0.0013 - 28ms/epoch - 9ms/step\n",
            "Epoch 213/300\n",
            "3/3 - 0s - loss: 0.0014 - 23ms/epoch - 8ms/step\n",
            "Epoch 214/300\n",
            "3/3 - 0s - loss: 0.0013 - 28ms/epoch - 9ms/step\n",
            "Epoch 215/300\n",
            "3/3 - 0s - loss: 0.0015 - 26ms/epoch - 9ms/step\n",
            "Epoch 216/300\n",
            "3/3 - 0s - loss: 0.0023 - 25ms/epoch - 8ms/step\n",
            "Epoch 217/300\n",
            "3/3 - 0s - loss: 0.0038 - 26ms/epoch - 9ms/step\n",
            "Epoch 218/300\n",
            "3/3 - 0s - loss: 0.0060 - 28ms/epoch - 9ms/step\n",
            "Epoch 219/300\n",
            "3/3 - 0s - loss: 0.0175 - 27ms/epoch - 9ms/step\n",
            "Epoch 220/300\n",
            "3/3 - 0s - loss: 0.0186 - 28ms/epoch - 9ms/step\n",
            "Epoch 221/300\n",
            "3/3 - 0s - loss: 0.0151 - 27ms/epoch - 9ms/step\n",
            "Epoch 222/300\n",
            "3/3 - 0s - loss: 0.0144 - 22ms/epoch - 7ms/step\n",
            "Epoch 223/300\n",
            "3/3 - 0s - loss: 0.0142 - 22ms/epoch - 7ms/step\n",
            "Epoch 224/300\n",
            "3/3 - 0s - loss: 0.0197 - 26ms/epoch - 9ms/step\n",
            "Epoch 225/300\n",
            "3/3 - 0s - loss: 0.0136 - 29ms/epoch - 10ms/step\n",
            "Epoch 226/300\n",
            "3/3 - 0s - loss: 0.0097 - 28ms/epoch - 9ms/step\n",
            "Epoch 227/300\n",
            "3/3 - 0s - loss: 0.0186 - 27ms/epoch - 9ms/step\n",
            "Epoch 228/300\n",
            "3/3 - 0s - loss: 0.0156 - 27ms/epoch - 9ms/step\n",
            "Epoch 229/300\n",
            "3/3 - 0s - loss: 0.0144 - 25ms/epoch - 8ms/step\n",
            "Epoch 230/300\n",
            "3/3 - 0s - loss: 0.0122 - 28ms/epoch - 9ms/step\n",
            "Epoch 231/300\n",
            "3/3 - 0s - loss: 0.0229 - 25ms/epoch - 8ms/step\n",
            "Epoch 232/300\n",
            "3/3 - 0s - loss: 0.0148 - 24ms/epoch - 8ms/step\n",
            "Epoch 233/300\n",
            "3/3 - 0s - loss: 0.0097 - 27ms/epoch - 9ms/step\n",
            "Epoch 234/300\n",
            "3/3 - 0s - loss: 0.0092 - 24ms/epoch - 8ms/step\n",
            "Epoch 235/300\n",
            "3/3 - 0s - loss: 0.0118 - 24ms/epoch - 8ms/step\n",
            "Epoch 236/300\n",
            "3/3 - 0s - loss: 0.0116 - 24ms/epoch - 8ms/step\n",
            "Epoch 237/300\n",
            "3/3 - 0s - loss: 0.0073 - 25ms/epoch - 8ms/step\n",
            "Epoch 238/300\n",
            "3/3 - 0s - loss: 0.0066 - 23ms/epoch - 8ms/step\n",
            "Epoch 239/300\n",
            "3/3 - 0s - loss: 0.0051 - 22ms/epoch - 7ms/step\n",
            "Epoch 240/300\n",
            "3/3 - 0s - loss: 0.0088 - 25ms/epoch - 8ms/step\n",
            "Epoch 241/300\n",
            "3/3 - 0s - loss: 0.0069 - 23ms/epoch - 8ms/step\n",
            "Epoch 242/300\n",
            "3/3 - 0s - loss: 0.0042 - 24ms/epoch - 8ms/step\n",
            "Epoch 243/300\n",
            "3/3 - 0s - loss: 0.0021 - 25ms/epoch - 8ms/step\n",
            "Epoch 244/300\n",
            "3/3 - 0s - loss: 0.0030 - 26ms/epoch - 9ms/step\n",
            "Epoch 245/300\n",
            "3/3 - 0s - loss: 0.0020 - 27ms/epoch - 9ms/step\n",
            "Epoch 246/300\n",
            "3/3 - 0s - loss: 0.0011 - 26ms/epoch - 9ms/step\n",
            "Epoch 247/300\n",
            "3/3 - 0s - loss: 8.0707e-04 - 25ms/epoch - 8ms/step\n",
            "Epoch 248/300\n",
            "3/3 - 0s - loss: 7.7953e-04 - 25ms/epoch - 8ms/step\n",
            "Epoch 249/300\n",
            "3/3 - 0s - loss: 0.0010 - 24ms/epoch - 8ms/step\n",
            "Epoch 250/300\n",
            "3/3 - 0s - loss: 7.5537e-04 - 24ms/epoch - 8ms/step\n",
            "Epoch 251/300\n",
            "3/3 - 0s - loss: 7.3908e-04 - 28ms/epoch - 9ms/step\n",
            "Epoch 252/300\n",
            "3/3 - 0s - loss: 6.3063e-04 - 27ms/epoch - 9ms/step\n",
            "Epoch 253/300\n",
            "3/3 - 0s - loss: 5.9648e-04 - 26ms/epoch - 9ms/step\n",
            "Epoch 254/300\n",
            "3/3 - 0s - loss: 3.1450e-04 - 26ms/epoch - 9ms/step\n",
            "Epoch 255/300\n",
            "3/3 - 0s - loss: 4.1387e-04 - 24ms/epoch - 8ms/step\n",
            "Epoch 256/300\n",
            "3/3 - 0s - loss: 3.8968e-04 - 26ms/epoch - 9ms/step\n",
            "Epoch 257/300\n",
            "3/3 - 0s - loss: 3.4205e-04 - 22ms/epoch - 7ms/step\n",
            "Epoch 258/300\n",
            "3/3 - 0s - loss: 1.7409e-04 - 26ms/epoch - 9ms/step\n",
            "Epoch 259/300\n",
            "3/3 - 0s - loss: 2.4988e-04 - 25ms/epoch - 8ms/step\n",
            "Epoch 260/300\n",
            "3/3 - 0s - loss: 2.9607e-04 - 26ms/epoch - 9ms/step\n",
            "Epoch 261/300\n",
            "3/3 - 0s - loss: 3.5394e-04 - 26ms/epoch - 9ms/step\n",
            "Epoch 262/300\n",
            "3/3 - 0s - loss: 2.6101e-04 - 25ms/epoch - 8ms/step\n",
            "Epoch 263/300\n",
            "3/3 - 0s - loss: 2.3420e-04 - 25ms/epoch - 8ms/step\n",
            "Epoch 264/300\n",
            "3/3 - 0s - loss: 1.9736e-04 - 25ms/epoch - 8ms/step\n",
            "Epoch 265/300\n",
            "3/3 - 0s - loss: 2.6245e-04 - 26ms/epoch - 9ms/step\n",
            "Epoch 266/300\n",
            "3/3 - 0s - loss: 1.9273e-04 - 26ms/epoch - 9ms/step\n",
            "Epoch 267/300\n",
            "3/3 - 0s - loss: 1.3136e-04 - 26ms/epoch - 9ms/step\n",
            "Epoch 268/300\n",
            "3/3 - 0s - loss: 9.4539e-05 - 22ms/epoch - 7ms/step\n",
            "Epoch 269/300\n",
            "3/3 - 0s - loss: 1.0686e-04 - 21ms/epoch - 7ms/step\n",
            "Epoch 270/300\n",
            "3/3 - 0s - loss: 1.1625e-04 - 25ms/epoch - 8ms/step\n",
            "Epoch 271/300\n",
            "3/3 - 0s - loss: 1.0164e-04 - 26ms/epoch - 9ms/step\n",
            "Epoch 272/300\n",
            "3/3 - 0s - loss: 1.3501e-04 - 26ms/epoch - 9ms/step\n",
            "Epoch 273/300\n",
            "3/3 - 0s - loss: 1.1563e-04 - 22ms/epoch - 7ms/step\n",
            "Epoch 274/300\n",
            "3/3 - 0s - loss: 1.1201e-04 - 25ms/epoch - 8ms/step\n",
            "Epoch 275/300\n",
            "3/3 - 0s - loss: 1.6675e-04 - 23ms/epoch - 8ms/step\n",
            "Epoch 276/300\n",
            "3/3 - 0s - loss: 1.9249e-04 - 24ms/epoch - 8ms/step\n",
            "Epoch 277/300\n",
            "3/3 - 0s - loss: 1.7421e-04 - 27ms/epoch - 9ms/step\n",
            "Epoch 278/300\n",
            "3/3 - 0s - loss: 2.1543e-04 - 27ms/epoch - 9ms/step\n",
            "Epoch 279/300\n",
            "3/3 - 0s - loss: 1.6309e-04 - 22ms/epoch - 7ms/step\n",
            "Epoch 280/300\n",
            "3/3 - 0s - loss: 1.7381e-04 - 24ms/epoch - 8ms/step\n",
            "Epoch 281/300\n",
            "3/3 - 0s - loss: 1.9202e-04 - 22ms/epoch - 7ms/step\n",
            "Epoch 282/300\n",
            "3/3 - 0s - loss: 9.2650e-05 - 25ms/epoch - 8ms/step\n",
            "Epoch 283/300\n",
            "3/3 - 0s - loss: 9.1736e-05 - 27ms/epoch - 9ms/step\n",
            "Epoch 284/300\n",
            "3/3 - 0s - loss: 9.4854e-05 - 25ms/epoch - 8ms/step\n",
            "Epoch 285/300\n",
            "3/3 - 0s - loss: 7.1937e-05 - 27ms/epoch - 9ms/step\n",
            "Epoch 286/300\n",
            "3/3 - 0s - loss: 5.8745e-05 - 29ms/epoch - 10ms/step\n",
            "Epoch 287/300\n",
            "3/3 - 0s - loss: 7.9332e-05 - 23ms/epoch - 8ms/step\n",
            "Epoch 288/300\n",
            "3/3 - 0s - loss: 1.2950e-04 - 26ms/epoch - 9ms/step\n",
            "Epoch 289/300\n",
            "3/3 - 0s - loss: 1.0453e-04 - 25ms/epoch - 8ms/step\n",
            "Epoch 290/300\n",
            "3/3 - 0s - loss: 9.8581e-05 - 27ms/epoch - 9ms/step\n",
            "Epoch 291/300\n",
            "3/3 - 0s - loss: 9.0520e-05 - 28ms/epoch - 9ms/step\n",
            "Epoch 292/300\n",
            "3/3 - 0s - loss: 5.3125e-05 - 22ms/epoch - 7ms/step\n",
            "Epoch 293/300\n",
            "3/3 - 0s - loss: 9.8206e-05 - 27ms/epoch - 9ms/step\n",
            "Epoch 294/300\n",
            "3/3 - 0s - loss: 1.3525e-04 - 26ms/epoch - 9ms/step\n",
            "Epoch 295/300\n",
            "3/3 - 0s - loss: 1.5861e-04 - 29ms/epoch - 10ms/step\n",
            "Epoch 296/300\n",
            "3/3 - 0s - loss: 1.1337e-04 - 22ms/epoch - 7ms/step\n",
            "Epoch 297/300\n",
            "3/3 - 0s - loss: 1.3575e-04 - 26ms/epoch - 9ms/step\n",
            "Epoch 298/300\n",
            "3/3 - 0s - loss: 7.8389e-05 - 25ms/epoch - 8ms/step\n",
            "Epoch 299/300\n",
            "3/3 - 0s - loss: 9.9359e-05 - 26ms/epoch - 9ms/step\n",
            "Epoch 300/300\n",
            "3/3 - 0s - loss: 1.6533e-04 - 24ms/epoch - 8ms/step\n",
            "14/14 [==============================] - 0s 3ms/step\n"
          ]
        },
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "<matplotlib.collections.PathCollection at 0x7bae97e1b250>"
            ]
          },
          "metadata": {},
          "execution_count": 49
        },
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "<Figure size 640x480 with 1 Axes>"
            ],
            "image/png": "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\n"
          },
          "metadata": {}
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "seconds = time.time()\n",
        "print(\"Time in seconds since end of run:\", seconds)\n",
        "local_time = time.ctime(seconds)\n",
        "print(local_time)"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 0
        },
        "id": "YyOarWssKyjN",
        "outputId": "53613d18-df9b-4279-c03f-6b26b43e6452"
      },
      "execution_count": 50,
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "Time in seconds since end of run: 1710115771.3448021\n",
            "Mon Mar 11 00:09:31 2024\n"
          ]
        }
      ]
    }
  ]
}